using System;
using System.Collections.Generic;
using UnityEngine;

namespace Yoozoo.Gameplay.Liberty.AI
{
    [Serializable]
    public class NpcBoneItem
    {
        public string itemName;
        public Transform transform;
    }
    
    public class BoneItemController : MonoBehaviour
    {

        public List<NpcBoneItem> boneItems;
        private Dictionary<string, NpcBoneItem> _npcBoneItemMap;

        private void Awake()
        {
            _npcBoneItemMap = new Dictionary<string, NpcBoneItem>();
            if (boneItems!=null)
            {
                foreach (var boneItem in boneItems)
                {
                    if (boneItem!=null)
                    {
                        _npcBoneItemMap[boneItem.itemName] = boneItem;
                    }
                }
            }
        }

        public Transform GetBoneItem(string itemName)
        {
            if (_npcBoneItemMap != null)
            {
                _npcBoneItemMap.TryGetValue(itemName, out NpcBoneItem boneItem);
                if (boneItem!=null)
                {
                    return boneItem.transform;
                }
            }

            return null;
        }
        
        public void SetBoneItemActive(string itemName,bool active)
        {
            if (_npcBoneItemMap != null) 
            {
                _npcBoneItemMap.TryGetValue(itemName, out NpcBoneItem boneItem);
                if (boneItem!=null && boneItem.transform!=null)
                {
                    boneItem.transform.localScale = active ? Vector3.one : Vector3.zero;
                }
            }
        }

        public void UnActiveAll()
        {
            if (_npcBoneItemMap != null)
            {
                foreach (var item in _npcBoneItemMap)
                {
                    SetBoneItemActive(item.Key,false);
                }
            }
        }
    }
}